package com.cty.twentySeventhDay;
/*
* 给你一个整数数组 nums ，其中元素已经按 升序 排列，请你将其转换为一棵 平衡 二叉搜索树。
* */
public class Q_42 {

    // 力扣官方题解 方法一:中序遍历
    /*
    * 思路:
    *   利用中序遍历的思想
    *   将数组反推回去
    * */
    public TreeNode sortedArrayToBST(int[] nums) {
        return helper(nums,0,nums.length - 1);
    }

    public TreeNode helper(int[] nums,int left,int right) {
        if (left > right) {
            return null;
        }
        int mid = (left + right) / 2;
        TreeNode root = new TreeNode(nums[mid]);
        root.left = helper(nums,left,mid - 1);
        root.right = helper(nums,mid + 1,right);
        return root;
    }
}
